Skip to content

Runtime audio configuration for local audio tracks#974

Open
davidliu wants to merge 2 commits into
mainfrom
dl/audio_options_bug
Open

Runtime audio configuration for local audio tracks#974
davidliu wants to merge 2 commits into
mainfrom
dl/audio_options_bug

Conversation

@davidliu

Copy link
Copy Markdown
Contributor

No description provided.

@changeset-bot

changeset-bot Bot commented Jun 30, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 5011823

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
client-sdk-android Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions

Copy link
Copy Markdown
Contributor

Dependency diff:

-\--- io.github.webrtc-sdk:android-prefixed:144.7559.05
+\--- io.github.webrtc-sdk:android-prefixed:144.7559.09

@github-actions

Copy link
Copy Markdown
Contributor

Diffuse output:

OLD: diffuse-source-file
NEW: livekit-android-sdk-release.aar

 AAR      │ old      │ new      │ diff     
──────────┼──────────┼──────────┼──────────
      jar │  2.6 MiB │  2.6 MiB │ +1.5 KiB 
 manifest │  1.5 KiB │  1.5 KiB │      0 B 
 lint-jar │ 12.7 KiB │ 12.7 KiB │      0 B 
    other │  1.8 KiB │  1.8 KiB │      0 B 
──────────┼──────────┼──────────┼──────────
    total │  2.7 MiB │  2.7 MiB │ +1.5 KiB 

 JAR     │ old   │ new   │ diff         
─────────┼───────┼───────┼──────────────
 classes │  1497 │  1497 │  0 (+3 -3)   
 methods │ 20156 │ 20163 │ +7 (+24 -17) 
  fields │  5147 │  5148 │ +1 (+13 -12)
AAR
 size    │ diff     │ path          
─────────┼──────────┼───────────────
 2.6 MiB │ +1.5 KiB │ ∆ classes.jar 
─────────┼──────────┼───────────────
 2.6 MiB │ +1.5 KiB │ (total)
JAR
CLASSES:

   old  │ new  │ diff      
  ──────┼──────┼───────────
   1497 │ 1497 │ 0 (+3 -3) 
  
  + io.livekit.android.room.track.LocalAudioTrack_applyOptions-IoAF18A__inlined_withRTCTrack_livekit_android_sdk_release_1
  + io.livekit.android.room.track.LocalAudioTrack_features_5
  + io.livekit.android.room.track.LocalAudioTrackOptionsKt
  
  - io.livekit.android.room.track.LocalAudioTrack_special__inlined_map_1_2_1
  - io.livekit.android.room.track.LocalAudioTrack_special__inlined_map_1_2
  - io.livekit.android.room.track.LocalAudioTrack_special__inlined_map_1
  

METHODS:

   old   │ new   │ diff         
  ───────┼───────┼──────────────
   20156 │ 20163 │ +7 (+24 -17) 
  
  + io.livekit.android.audio.AudioRecordPrewarmer prewarm(LocalAudioTrackOptions)
  + io.livekit.android.audio.JavaAudioRecordPrewarmer prewarm(LocalAudioTrackOptions)
  + io.livekit.android.audio.NoAudioRecordPrewarmer prewarm(LocalAudioTrackOptions)
  + io.livekit.android.room.track.LocalAudioTrack access_getConstantFeatures(LocalAudioTrack, LocalAudioTrackOptions) → Set
  + io.livekit.android.room.track.LocalAudioTrack applyOptions-IoAF18A(LocalAudioTrackOptions) → Object
  + io.livekit.android.room.track.LocalAudioTrack getConstantFeatures(LocalAudioTrackOptions) → Set
  + io.livekit.android.room.track.LocalAudioTrack getOptions() → LocalAudioTrackOptions
  + io.livekit.android.room.track.LocalAudioTrack getOptions_annotations()
  + io.livekit.android.room.track.LocalAudioTrack setOptions(LocalAudioTrackOptions)
  + io.livekit.android.room.track.LocalAudioTrack_applyOptions-IoAF18A__inlined_withRTCTrack_livekit_android_sdk_release_1 <init>(RTCThreadToken, Track, Object, LocalAudioTrackOptions)
  + io.livekit.android.room.track.LocalAudioTrack_applyOptions-IoAF18A__inlined_withRTCTrack_livekit_android_sdk_release_1 call() → Object
  + io.livekit.android.room.track.LocalAudioTrack_features_4 <init>(Object)
  + io.livekit.android.room.track.LocalAudioTrack_features_4 get() → Object
  + io.livekit.android.room.track.LocalAudioTrack_features_4 set(Object)
  + io.livekit.android.room.track.LocalAudioTrack_features_5 <init>(LocalAudioTrack, Continuation)
  + io.livekit.android.room.track.LocalAudioTrack_features_5 invoke(LocalAudioTrackOptions, AudioProcessorInterface, boolean, Continuation) → Object
  + io.livekit.android.room.track.LocalAudioTrack_features_5 invoke(Object, Object, Object, Object) → Object
  + io.livekit.android.room.track.LocalAudioTrack_features_5 invokeSuspend(Object) → Object
  + io.livekit.android.room.track.LocalAudioTrackOptionsKt toAudioProcessingOptions(LocalAudioTrackOptions) → AudioProcessingOptions
  + kotlinx.coroutines.flow.FlowKt combine(Flow, Flow, Flow, Function4) → Flow
  + livekit.org.webrtc.AudioTrack setAudioProcessingOptions(AudioProcessingOptions) → AudioProcessingOptionsResult
  + livekit.org.webrtc.audio.AudioProcessingOptions <init>(boolean, boolean, boolean, boolean)
  + livekit.org.webrtc.audio.AudioProcessingOptionsResult isSuccess() → boolean
  + livekit.org.webrtc.audio.JavaAudioDeviceModule prewarmRecording(AudioProcessingOptions)
  
  - io.livekit.android.audio.AudioRecordPrewarmer prewarm()
  - io.livekit.android.audio.JavaAudioRecordPrewarmer prewarm()
  - io.livekit.android.audio.NoAudioRecordPrewarmer prewarm()
  - io.livekit.android.room.track.LocalAudioTrack access_getConstantFeatures(LocalAudioTrack) → Set
  - io.livekit.android.room.track.LocalAudioTrack getConstantFeatures() → Set
  - io.livekit.android.room.track.LocalAudioTrack_features_4 <init>(Continuation)
  - io.livekit.android.room.track.LocalAudioTrack_features_4 invoke(AudioProcessorInterface, boolean, Continuation) → Object
  - io.livekit.android.room.track.LocalAudioTrack_features_4 invoke(Object, Object, Object) → Object
  - io.livekit.android.room.track.LocalAudioTrack_features_4 invokeSuspend(Object) → Object
  - io.livekit.android.room.track.LocalAudioTrack_special__inlined_map_1 <init>(Flow, LocalAudioTrack)
  - io.livekit.android.room.track.LocalAudioTrack_special__inlined_map_1 collect(FlowCollector, Continuation) → Object
  - io.livekit.android.room.track.LocalAudioTrack_special__inlined_map_1_2 <init>(FlowCollector, LocalAudioTrack)
  - io.livekit.android.room.track.LocalAudioTrack_special__inlined_map_1_2 emit(Object, Continuation) → Object
  - io.livekit.android.room.track.LocalAudioTrack_special__inlined_map_1_2_1 <init>(LocalAudioTrack_special__inlined_map_1_2, Continuation)
  - io.livekit.android.room.track.LocalAud
...✂

@hiroshihorie hiroshihorie left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. One small question: is it intended for LocalAudioTrack.options to be publicly settable? It looks like callers could update the observable options and advertised features without going through applyOptions(...), so WebRTC would not receive the change. I could be wrong 🙂 Also I assume processing modes are not being exposed in this PR intentionally.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants